//
//  RootViewController.m
//  UITableViewDemo
//
//  Created by LZXuan on 15-5-18.
//  Copyright (c) 2015年 轩哥. All rights reserved.
//

#import "RootViewController.h"
#import "TableViewEditViewController.h"

#define kScreenSize [UIScreen mainScreen].bounds.size

@interface RootViewController () <UITableViewDataSource,UITableViewDelegate>
{
    //表格视图
    UITableView *_tableView;
    //数据源
    NSMutableArray *_dataArr;
    
    
}
@property (nonatomic,retain) UITableView *tableView;
@end

@implementation RootViewController
- (void)dealloc {
    [_dataArr release];
    self.tableView = nil;
    [super dealloc];
}
- (void)viewDidLoad {
    [super viewDidLoad];
    
    self.navigationItem.title = @"tableView基本操作";
    
    [self dataInit];
    
    [self creatTableView];
    
    
    
}
#pragma mark - 初始化数据
- (void)dataInit {
    //创建空的可变
    _dataArr = [[NSMutableArray alloc] init];
    
    NSArray *arr = @[@"tableView编辑",@"tableView多行删除",@"TableView移动cell",@"TableView分区索引",@"TableView搜索",@"QQ分组效果",@"通讯录&汉字拼音",@"通讯录2&第三方库汉字拼音"];
    //把数组arr指向的内容加入 到_dataArr指向的对象中
    [_dataArr addObjectsFromArray:arr];
    
    //有了数据之后 一般要刷新一下表格
    //后期网络阶段 我们数据下载完成之后要刷新表格(会把 协议中的方法再执行一遍(1.有多少分区2.分区有多少行3.获取 填充cell))
    [self.tableView reloadData];
}

#pragma mark - 创建表格
- (void)creatTableView {
    //取消导航条影响
    self.automaticallyAdjustsScrollViewInsets = NO;
    
    self.tableView = [[[UITableView alloc] initWithFrame:CGRectMake(0, 64, kScreenSize.width, kScreenSize.height-64) style:UITableViewStylePlain] autorelease];
    //设置代理和数据源
    self.tableView.delegate = self;
    self.tableView.dataSource = self;
    
    self.tableView.backgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"35_4.jpg"]]autorelease] ;
    
    [self.view addSubview:self.tableView];
}
#pragma mark - UITableViewDataScource,UITableViewDelegate
//有多少分区
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;//一个分区
}
//每个分区有多少行
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return _dataArr.count;
}
//获取创建cell 填充cell
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    //复用标识符
    static NSString *cellId = @"Cell";
    //复用队列
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellId] autorelease];
    }
    //从数据源数组获取数据
    //填充cell
    cell.textLabel.text = _dataArr[indexPath.row];
    //设置cell 透明 尽量不要这样做，数据多了那么cell 效率会降低
    cell.backgroundColor = [UIColor clearColor];
    return cell;
}
//cell行选中
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSArray *vcNameArr = @[@"TableViewEditViewController",@"MulRowDeleteViewController",@"TableViewMoveCellViewController",@"SectionIndexViewController",@"SearchContentViewController",@"QQGroupViewController",@"ContactViewController",@"ContactViewController2"];
    //获取指定行的对应的界面类型
    //把 类名字符串 转化为Class
    Class vcClass = NSClassFromString(vcNameArr[indexPath.row]);
    
    UIViewController *vc = [[vcClass alloc] init];
    
    //把 行内的字符串 作为下级导航的标题
    vc.navigationItem.title = _dataArr[indexPath.row];
    
    //跳转
    [self.navigationController pushViewController:vc animated:YES];
    [vc release];
}



- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
